关于原码、反码和补码

您所在的位置:网站首页 土壤指数 遥感 关于原码、反码和补码

关于原码、反码和补码

2024-07-11 11:01:00| 来源: 网络整理| 查看: 265

一、原码的定义

原码、反码和补码都是计算机中对数字的二进制定点表示方法。

原码表示法的最高位是符号位,0表示正,1表示负。其具体定义分为小数和正数定义,这里我们暂时只讨论整数的相关定义:

这里假设用1个字节来表示整数X,那么一共可以表示256个不同的X:

当X在[0,127]时,X的原码就是X;

当X在[-127,-0]时,X的原码就是128-X。

有以下需要注意的地方:

零的表示有两个:正零和负零,分别为0000 0000和1000 0000;

最大正数为127,最小负数为-127,加上正零和负零,一共256个数;

+0      0000 0000

+1      0000 0001

+2      0000 0010

+127  0111 1111

-0       1000 0000

-1       1000 0001

-127    1111 1111

 

二、反码的定义

正数的反码:与原码相同

负数的反码:最高位符号位不变,保持为1,其它各位按位取反,即:0变1,1变0。

它的表示范围同原码相同:[-127,+127],+0和-0的表示也不相同,分别为0000 0000和1111 1111。

 

三、补码的定义

正数的补码:与原码相同

负数的补码:反码+1

正零和负零的表示完全相同:0000 0000,原因很简单:正数零的反码就是零的原码,0000 0000,这没有问题;负数零的补码是其反码加1,而其反码前面已经提到,是1111 1111,它加1之后应为1 0000 0000,但是我们前面既然已经声明用1个字节来举例表示整数 ,那么最高位的1就会被舍去,因此结果也是0000 0000。

它的表示范围已经改变:[-128,+127],为何可以表示-128了呢,原因如下:

1个字节本来可以表示256个不同的数,但是现在正零和负零已经相同了,那么肯定剩下一个数没有用到,这个数就是1000 0000,可以验证:[-127,+127]中没有哪个数的补码会是这个数,原因很简单,我们可以根据这个补码求它的原码,过程如下:

首先,假设它是正数的补码。因为正数的原码、反码、补码完全相同,因此如果它是正数,那么它的原码就是它的补码,那么因此原码也是1000 0000,但我们根据原码的定义可知,最高位为1表示负数,因此自相矛盾,所以假设错误,得出结论:它不是正数;

其次,假设它是负数的补码。那么它减1就会得到其反码为0111 1111,这样也不正确,因为一个负数的反码的最高位也应该是1,也自相矛盾,所以它也不是负数的原码;

最后它只能是零的补码了,可我们已经知道正零和负零的补码相同,均为0000 0000,因此它也不是零的补码。

综上所述,它不是[-127,+127]中任何一个数的补码,那么它不就浪费了吗?为了避免浪费,我们特别地规定:1000 0000是-128的补码。

+0      0000 0000

+1      0000 0001

+2      0000 0010

+127  0111 1111

-128  1000 0000

-127  1000 0001

-1      1111 1111

所以在补码的世界里,由0开始逐渐递增,直到最大的正数后,如再加1,则跳变到最小的负数,之后又逐渐递增,直到变为最大的负数。

  

                               原码的变化图                                                                                  补码的变化图

在计算机中数都是采用补码表示,原因有二:一是原码和反码对零的表示都不相同,因此这不合数学逻辑,不适合进行数的运算,而且它们还需要对符号位做特殊处理;而补码首先对零的表示是唯一的,其次它不需要对符号位作特殊的处理,也就是符号位可以直接参与运算,补码还可以把减法当成加法来处理。

补码的运算法则:[A+B]补 = [A]补 + [B]补

因此可推导出::[A-B]补 = [A+(-B)]补 = [A]补 + [-B]补

关于负数的补码如何求的问题,包括其中涉及的进位或溢出等,以后再学习吧。

 

四、Java中的int型变量的讨论

Java中的数都是有符号数。int型变量用4个字节来表示,因此最大值是2的31次减1,最小值是负的2的31次。

 

 

 



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭